#define _CRT_SECURE_NO_WARNINGS 1

//#include<iostream>
//
//using namespace std;
//
//int main()
//{
//	double kg;
//	char yes_or_no;
//	cin >> kg >> yes_or_no;
//	int cnt = 0;
//	if (yes_or_no == 'y')
//		cnt += 5;
//	int int_kg = int(kg);
//	if (kg - int_kg > 0)
//	{
//		int_kg++;
//	}
//
//	cnt += 20;
//	int_kg--;
//	cnt += int_kg * 1;
//
//	cout << cnt << endl;
//
//	return 0;
//}



//#include<iostream>
//#include<vector>
//
//using namespace std;
//
//int main()
//{
//	int n;
//	cin >> n;
//	vector<long long> arr(n);
//	vector<long long> dp(n+1,0);
//
//	for (int i = 0; i < n; i++)
//	{
//		cin >> arr[i];
//	}
//
//
//	for (int i = 2; i <= n; i++)
//	{
//		dp[i] = min(dp[i - 1] + arr[i - 1], dp[i - 2] + arr[i - 2]);
//	}
//	if (n == 1)
//		cout << arr[0];
//	else
//		cout << dp[n] << endl;
//
//	return 0;
//}



#include<iostream>
#include<string>
#include<vector>

using namespace std;

int main()
{
	int n;
	cin >> n;
	string str1,str2;
	cin >> str1 >> str2;
	string strs;
	int minLength = 0x3f3f3f3f;
	int indexStr1 = -1;
	int indexStr2 = -1;
	for (int i = 0; i < n; i++)
	{
		cin >> strs;

		if (strs == str1)
		{
			indexStr1 = i;
		}

		if (strs == str2)
		{
			indexStr2 = i;
		}
		if (indexStr1 != -1 && indexStr2 != -1)
			minLength = min(abs(indexStr2 - indexStr1), minLength);
	}

	if (str1.size() == 0 || str2.size() == 0)
	{
		cout << "-1" << endl;
		return 0;
	}


	if (indexStr1 != -1 && indexStr2 != -1)
		cout << minLength << endl;
	else
		cout << "-1" << endl;

	return 0;
}